#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int max(int a,int b) {
    return a>b ? a : b;
}
int main() {
    char str[400];
    scanf("%s",str);
    /* 计算出m,n */
    int len=strlen(str);
    int i,num=0,m=1,n=0;
    for(i=0;i<len;i++) {
        if(str[i]==',') {
            if(str[i+1]=='[') m++;
            num++;
        }
    }
    n=(num+1)/m;
    /* 分割字符串，构建数组 */
    int arr[m][n],row=0,col=0;
    char* p=strtok(str+2,"[],");
    while(p) {
        arr[row][col]=atoi(p);
        col++;
        if(col==n) {
            col=0;
            row++;
        }
        p=strtok(NULL,"[],");
    }
    /* 动态规划 */
    for(i=1;i<m;i++) { //左侧边界
        arr[i][0]+=arr[i-1][0];
    }
    for(i=1;i<n;i++) { //上侧边界
        arr[0][i]+=arr[0][i-1];
    }
    for(i=1;i<m;i++) {
        for(int j=1;j<n;j++) {
            arr[i][j]+=max(arr[i-1][j],arr[i][j-1]);
        }
    }
    printf("%d",arr[m-1][n-1]);
    return 0;
}